Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

в основи програмування на мові асемблер, за допомогою Win32API функцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний Університет «Львівська Політехніка» кафедра АСУ Звіт Про виконання лабораторної роботи №1 із системного програмування Львів-2012 Лабораторна робота №1 Тема – введення в основи програмування на мові асемблер, за допомогою Win32API функцій. Мета – навчитися використовувати функції Win32API при програмуванні в операційній системі Windows. ТЕОРЕТИЧНІ ПОЛОЖЕННЯ Win32API (розшифровується як інтерфейс прикладних програм) - це система функцій ОС Windows, якими користується програма не залежно від мови програмування. Win32API використовує 32х-бітну адресацію. Під адресою розуміється 32 бітне число, котре визначає, де лежить об’єкт у пам’яті комп’ютера. Множина АРІ-функцій розширюється при переході до наступної версії Windows, таким чином, забезпечується сумісність розроблених раніше програм із новими версіями операційної системи. Суть функцій Win32API зрозуміти значно легше, якщо уявити, з яких файлів вони викликаються і на які групи ці функції поділяються. Основний набір функцій знаходиться в бібліотеці kernel32.dll, котра складає ядро операційної системи Windows. Під ядром розуміються базові операції, на яких реалізовані всі інші АРІ-функції (наприклад, операції з пам’яттю та процесами). Файли в котрих знаходяться Win32API функції називаються динамічними бібліотеками. Деякі бібліотеки знаходяться постійно в оперативній пам’яті, наприклад, ядро. Інші бібліотеки можуть довантажуватися, в процесі виконання програми, або при її старті (за допомогою секції імпорту в ЕХЕ - модулі). При необхідності є можливість вивантажити бібліотеку, таким чином зекономити дорогоцінні ресурси пам‘яті. Динамічні бібліотеки іменуються у Windows як DLL(файли. Щоб визначити список функцій експорту DLL файлу, потрібно викликати ImpDefPro.exe У разі необхідності, програміст може створити свій DLL(файл з набором власних функцій. Пізнати силу операційної системи можна за допомогою будь-якої мови програмування, що підтримує Win32API. Але кожна мова, накладає певну кількість обмежень на управління даними, що виражається великою кількістю типів та правил користування даними, проте асемблер не має ЖОДНИХ ОБМЕЖЕНЬ НА ПРОГРАМУ ТА ЇЇ ДАНІ, з якими вона працює. Це повинен робити сам програміст з метою захисту операційної системи від своїх некоректних дій. Це і робить мову асемблер такою геніальною. Хоча асемблер розглядають як мову низького рівня, цю мову можна також розглянути, як мову високого рівня, якщо використовуватися макрокомандами та підпрограмами (як це буде показано в прикладах). Основною метою системного програмування є написання коректних програм з необмеженими можливостями (в рамках операційної системи). Для збереження коректності ми будемо користуватися певними правилами програмування, які будуть зрозумілі на конкретних прикладах. Особливості виклику функцій API При програмуванні на WinAPI необхідно знати деякі правила, перелічимо їх: Стандарт виклику функцій API оснований на передачі параметрів через стек (а не через регістри); кожен параметр для функцій API має довжину 4 байти, топу який має логічний зміст повинен розширятися до 4 байтів. Наприклад, NULL = 0000h, TRUE = 0001h. Значення кожної функції API повертається в регістрі EAX. Якщо функція повертає структуру або рядок, то регістр EAX містить логічну ознаку виконання, а адресу структури або ж рядка (посилання на дані) необхідно передати до функції як параметр; Усі АРІ-функції мають унікальні назви, вони ідентичні у будь-якій мові програмування. Програми Windows звертаються до функцій API за допомогою команд апаратного виклику CALL, наприклад: call MessageBoxA, де MessageBoxA – іменована константа, що містить 32х-бітну адресу функції. Саме ця назва функції фігурує у файлі user32.dll (подивіться редактором цей файл). При програмуванні на асемблері необхідно розрізняти команди для процесора та команди самого асемблера. Наприклад, для передачі параметрів використовується явний запис параметрів в стек (в зворотному порядк...
Антиботан аватар за замовчуванням

02.02.2013 12:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини